let person = {
  name: 'kitty',
  friends: ['a', 'b', 'c']
}

function Obj (o) {
  function F () { }
  F.prototype = o
  return new F()
}

let anotherPerson = Obj(person)
let r1 = anotherPerson.name = 'niko'
let r2 = anotherPerson.friends.push('d')
console.log(r1)
console.log(anotherPerson.friends);

// 本质就是把继承过程封装成一个函数，不关系封装过程，只需要获得新对象即可（新对象的原型是传入函数的对象）
